package main

import (
	fmt "fmt"
)

func addScore() {
	// 输入学号和姓名
	var sid, name string
	fmt.Println("请分别输入学号和姓名，以空格隔开.如:1001 yuan")
	fmt.Scan(&sid, &name)

	_, isExist := data[sid]
	if isExist {
		fmt.Println("该学生已经存在！")
	} else {
		// 输入成绩
		var chinese, math, english string
		fmt.Println("请分别输入语数英成绩,以空格隔开.如:100 90 80")
		fmt.Scan(&chinese, &math, &english)
		// fmt.Println(chinese, math, english)

		// 添加学生到data中
		data[sid] = map[string]string{
			"sid":     sid,
			"name":    name,
			"chinese": chinese,
			"math":    math,
			"english": english,
		}
		fmt.Println("添加成功")
	}

}

func checkScore() {
	fmt.Println("****************************************************************************")
	for _, stu := range data {
		fmt.Printf("学号：%-8s 姓名：%-8s 语文成绩：%-8s 数学成绩：%-8s 英语成绩：%-8s",
			stu["sid"], stu["name"], stu["chinese"], stu["math"], stu["english"])
		fmt.Println()
	}
	fmt.Println("****************************************************************************")

}

func updateScore() {
	var updateSid string
	fmt.Println("请输入更新学生成绩学号")
	fmt.Scan(&updateSid)
	updateStu, isExist := data[updateSid]
	if isExist {
		// 输入成绩
		var chinese, math, english string
		fmt.Println("请分别输入语数英成绩,以空格隔开.如:100 90 80")
		fmt.Scan(&chinese, &math, &english)
		// 更新data中的学生
		updateStu["chinese"] = chinese
		updateStu["math"] = math
		updateStu["english"] = english
		fmt.Println("更新成功!")
	} else {
		fmt.Println("不存在该学生!")
	}

}

func deleteScore() {
	var delSid string
	fmt.Println("请输入删除学生成绩学号")
	fmt.Scan(&delSid)
	delete(data, delSid)
	fmt.Println("删除成功！")
}

var data = make(map[string]map[string]string)

func main() {

	for true {
		fmt.Print(`
   1、添加学生成绩
   2、查看学生成绩
   3、更新学生成绩
   4、删除学生成绩
`)

		var choice int
		fmt.Print("请输入选择:")
		//stdin := bufio.NewReader(os.Stdin)
		//fmt.Fscan(stdin,&choice)
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			addScore()
		case 2:
			checkScore()
		case 3:
			updateScore()
		case 4:
			deleteScore()
		default:
			fmt.Println("非法输入！")
		}
	}

}
